Computer networks often experience congestion. When congestion is concentrated at a specific point in the network, that point is commonly referred to as a bottleneck. There are two main types of bottlenecks: traffic-based and frame-based. Traffic-based congestion occurs when the throughput capacity of a link between two nodes (e.g., two servers) is reached or exceeded. For example, a 10 Gigabit Ethernet link may not be able to handle more than 10 Gigabits per second. Frame-based bottlenecks occur when a node cannot handle data that is supposed to pass through the node. This can happen for various reasons. For example, the node may have crashed so that it no longer accepts traffic from a switch, causing data to be queued inside the switch rather than being released towards an intended destination. Another example is when the node prioritizes certain data in its queue so that fewer transmission resources are available for other data to be sent through the node. Bottlenecks can be hard to predict, especially frame-based bottlenecks.